//
//  CompositeObjects.h
//  Charles
//
//  Created by Charles on 2017/7/9.
//  Copyright © 2017年 charles. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CompositeProtocal.h"
#import "IteratorProtocal.h"

@interface CMenuItem : NSObject<MenuComponent>

- (instancetype)initWithName:(NSString *)name desc:(NSString *)desc vegetarian:(BOOL)vegetarian price:(double)price;

@end

@interface CMenu : NSObject<MenuComponent>

- (instancetype)initWithName:(NSString *)name desc:(NSString *)desc;


@end

@interface CompositeIterator : NSObject<Iterator>

- (instancetype)initWithIterators:(NSArray *)iterators;

@end

@interface CWaitress : NSObject

- (instancetype)initWithAllMenus:(id<MenuComponent>)allMenus;

- (void)printMenu;

- (void)printVegetarianMenu;

@end
